package com.opencloud.iot.provider.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.opencloud.iot.client.model.entity.IotMoveObserver;
import com.opencloud.iot.client.model.entity.IotNStreng;
import com.opencloud.iot.client.model.entity.IotSleepDataTimeZone;
import com.opencloud.iot.client.model.entity.IotSleepObserver;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface IotNStrengMapper extends BaseMapper<IotNStreng> {
    /**
     * 获取时间段内的有记录的手环
     *
     * @param startTime
     * @param endTime
     * @return
     */
    List<String> selectMacList(@Param("startTime") Long startTime,@Param("endTime") Long endTime);

    /**
     * 获取时间段内手环的睡眠数据并统计
     * @param configValue
     * @param watchmac
     * @param startTime
     * @param endTime
     * @return
     */
    List<IotSleepObserver> selectSleepData(@Param("configValue") Integer configValue,@Param("watchmac") String watchmac,@Param("startTime") Long startTime,@Param("endTime") Long endTime);

    /**
     * 获取时间段内手环的运动数据并统计
     * @param configLowValue
     * @param configUpValue
     * @param watchmac
     * @param startTime
     * @param endTime
     * @return
     */
    List<IotMoveObserver> selectMoveData(@Param("configLowValue") Integer configLowValue,@Param("configUpValue") Integer configUpValue,@Param("watchmac") String watchmac,@Param("startTime") Long startTime,@Param("endTime") Long endTime);

    /**
     * 根据数据创建时间获取原始数据
     * @param startTime
     * @param endTime
     * @return
     */
    List<IotNStreng> selectBYCreateTime(@Param("startTime") Long startTime, @Param("endTime") Long endTime);

    /**
     * 获取有数据的MAC和时间区间
     * @param startTime
     * @param endTime
     * @return
     */
    List<IotSleepDataTimeZone> selectMacAndTimeZone(@Param("startTime") Long startTime, @Param("endTime") Long endTime);
}
